#ifndef RT_MUNDO
#define RT_MUNDO
#include "object.h"
#include "camera.h"
#include "luz.h"
#include "color.h"
#include "esfera.h"

#define RT_MAX_OBJETOS 100

class Mundo {
	private:
		//colecao de objetos que o mundo possui (limite inicial de 100 objetos)
		Object* objetos[RT_MAX_OBJETOS];
		//tipos dos objetos armazenados
		int tipos[RT_MAX_OBJETOS];
		int totalObjetos;
	
	public:
		Color *fundo;
		Luz *luz;
		double int_ambiente;
		/**
		 * Deve armazenar os objetos passados
		 */
		Mundo(Color *fundo,Luz *luz);
		/*
		 * Deve destruir todos os objetos armazenados
		 */
		~Mundo();
		/*
		* Acrescenta um objeto no mundo
		*/
		void addObjeto(Object *objeto);
	
		/**
		 * Deve retornar o total de objetos no mundo
		 */
		int totalObjs();
	
		/**
		 * Deve retornar o objeto que está na posicao i
		 */
		Object* getObjeto(int i);
};

#include "mundo.cpp"
#endif
